The 7 Battles Of Software Architecture: How To Protect Your Project!